﻿/* ***** BEGIN LICENSE BLOCK *****
 *   Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is Меню форума Vingrad.
 *
 * The Initial Developer of the Original Code is
 * Jefim Borissov.
 * Portions created by the Initial Developer are Copyright (C) 2006
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor (s):
 * Daniel Abramov
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 * 
 * ***** END LICENSE BLOCK ***** */

var vingradmenu = {
  _mnuSeparator : null,
  _mnuSearchForum : null,
  _mnuSearchWiki : null,
  _mnuCopyVingradUrl : null, 
  _mnuCopyVingradImageUrl: null,

  onLoad: function () {     
    this.initialized = true; 
    $("contentAreaContextMenu")
            .addEventListener ("popupshowing",
                function () {             // Динамическая генерация контекстного меню в зависимости от того, что именно выделено 
                    if (this._mnuSeparator == null) this._mnuSeparator = $("context-vingradmenu-contextsep");
                    if (this._mnuSearchForum == null) this._mnuSearchForum = $("context-vingradmenu-contextsearchforum");
                    if (this._mnuSearchWiki == null) this._mnuSearchWiki = $("context-vingradmenu-contextsearchwiki");
                    if (this._mnuCopyVingradUrl == null) this._mnuCopyVingradUrl = $("context-vingradmenu-contextcopyurl");
                    if (this._mnuCopyVingradImageUrl == null) this._mnuCopyVingradImageUrl = $("context-vingradmenu-contextcopyimageurl");
                    if (gContextMenu.isTextSelected) {
                        var q = utils.getSelectionForSearch ();
                        if (q.length > 15) q = q.substring(0, 15) + "...";
                        this._mnuSearchForum.label = 'Искать на форуме Vingrad фразу "' + q +'"';
                        this._mnuSearchWiki.label = 'Искать в Vingrad Wiki фразу "' + q +'"';
                    }
                    this._mnuSeparator.hidden = !gContextMenu.isTextSelected; // только когда выделен текст
                    this._mnuSearchForum.hidden = !gContextMenu.isTextSelected; // только когда выделен текст 
                    this._mnuSearchWiki.hidden = !gContextMenu.isTextSelected;  // только когда выделен текст
                    this._mnuCopyVingradUrl.hidden = !gContextMenu.onLink; // только когда выделена сцылка
                    this._mnuCopyVingradImageUrl.hidden = !gContextMenu.onImage; // только когда выделена картинка
               }, false);
    // следим за загрузкой новых страниц
    var appcontent = document.getElementById("appcontent");   // browser
    if(appcontent)
      appcontent.addEventListener("load",
        function () {
            var topicId = utils.tryParseTopicId ();
            if (topicId != null) {
                settings.incrementTopicVisitsCount (topicId);
                if (settings.getTopicVisitsCount (topicId) > 5 && settings.addFavTopicDefaultBehavior  () != "noask" && !settings.getIgnoreTopicVisits (topicId))
                    favTopicsManager.suggestAddFavTopic (topicId, utils.tryParseTopicTitle ());
            } else {
                var forumId =  utils.tryParseForumId ();
                if (forumId != null) {
                    settings.incrementForumVisitsCount (forumId);
                    forumsManager.populateMostVisitedList ();
            }
        }
      }, true);
    forumsManager.init (); // список форумов
    searchManager.init (); // поисковые системы
    favTopicsManager.init (); // избранные темы
    newsManager.init (); // новости
    // this.onUpdateNewMessages ();
  }, 

  onUnload: function () {
        favTopicsManager.deinit (); // сохраняем избранные темы
        newsManager.deinit ();
  },

// сцуко не работает :( будем искать другой путь  
   onUpdateNewMessages: function () {
        var xmlReq = new XMLHttpRequest ();
        xmlReq.open ('HEAD', 'http://forum.vingrad.ru/index.php?act=Search&CODE=getnew', true);
        xmlReq.onerror = function () { alert('err'); };
        xmlReq.onreadystatechange = function (aEvt) {
          if (xmlReq.readystate == 2)  {
     	      if (xmlReq.status == 302 || xmlReq.status == 301) {
                  alert (xmlReq.getResponseHeader ("location"));
     		  return;              
              }
          }
        };
        xmlReq.send (null);
      }
}

function $ (id) { // shortcut для getElementById         
    return document.getElementById (id);
}

window.addEventListener ("load", vingradmenu.onLoad, false);
window.addEventListener( "unload", vingradmenu.onUnload, false);
